#include <bits/stdc++.h>

using namespace std;

const int maxn=81000;
char str[maxn];
int ssa[2][maxn*2],rrk[2][maxn*2];
int hei[maxn],cnt[maxn];
int k,n;

void calsa(int *sa,int *rk,int *Sa,int *Rk){
	for(int i=1;i<=n;i++) cnt[rk[sa[i]]]=i;
	for(int i=n;i>=1;i--)
		if(sa[i]>k)
			Sa[cnt[rk[sa[i]-k]]--]=sa[i]-k;
	for(int i=n-k+1;i<=n;i++)
		Sa[cnt[rk[i]]--]=i;
	for(int i=1;i<=n;i++) Rk[Sa[i]]=Rk[Sa[i-1]]+(rk[Sa[i]]!=rk[Sa[i-1]]||rk[Sa[i]+k]!=rk[Sa[i-1]+k]);
}
int* build(){
	int p,q;
	memset(cnt,0,sizeof cnt);
	memset(rrk,0,sizeof rrk);
	memset(ssa,0,sizeof ssa);
	for(int i=1;i<=n;i++) cnt[str[i]]++;
	for(int i=1;i<256;i++) cnt[i]+=cnt[i-1];
	for(int i=n;i>=1;i--) ssa[0][cnt[str[i]]--]=i;
	for(int i=1;i<=n;i++) rrk[0][ssa[0][i]]=rrk[0][ssa[0][i-1]]+(str[ssa[0][i]]!=str[ssa[0][i-1]]);

	k=1;p=0;q=1;
	while(k<n){
		calsa(ssa[p],rrk[p],ssa[q],rrk[q]);
		k<<=1;swap(p,q);
	}

	int t=0;
	int *rk=rrk[p],*sa=ssa[p];
	for(int i=1;i<=n;i++){
		if(t) t--;
		if(rk[i]-1<1) continue;
		int j=sa[rk[i]-1];
		while(str[i+t]==str[j+t]) t++;
		hei[rk[i]]=t;
	}
	return sa;
}

int main(){
	int T;
	scanf("%d",&T);
	while(T--){
		scanf("%d%s",&n,str+1);
		for(int i=1;i<=n;i++) str[i+n]=str[i];
		n*=4;
		for(int i=1;i<=n>>1;i++) str[n+1-i]=str[i];
		str[n+1]=0;
		int *sa=build();
		int i,ans;
		i=n;
		n/=4;
		while((sa[i]>n&&sa[i]<=2*n)||(sa[i]>3*n)) i--;
		ans=sa[i];i--;
		while(hei[i+1]>=n){
			if((sa[i]>n&&sa[i]<=2*n)||(sa[i]>3*n)) {i--;continue;}
			int p,q;
			p=min(ans,n+1-(ans-2*n));
			q=min(sa[i],n+1-(sa[i]-2*n));
			if(q<p) ans=sa[i];
			else if(p==q) if(sa[i]<ans) ans=sa[i];
			i--;
		}
		if(ans<=n) printf("%d 0\n",ans);
		else printf("%d 1\n",n+1-(ans-2*n));
	}

	return 0;
}
